package demo.day14

// Kotlin 语言的互操作性与可空性
fun main() {
    // 下面是Java与Kotlin交互 错误的案例
    println(_02KtBaseDay14().info1.length)
    println(_02KtBaseDay14().info2.length)
//    ----------------------------------------
    // 凡是java与Kotlin交互的时候 Java给Kotlin用的值 都是String!类型
    val info1 = _02KtBaseDay14().info1
    val info2 = _02KtBaseDay14().info2
    println(info1.length)
    println(info2.length)
//    ----------------------------------------------------------------

    // 下面是Java与Kotlin交互 正确的案例
    // 规则1
    // 只要是看到有String!的类型 在使用的时候 必须 ?.xxx来使用 但这个规则不好 忘记写就会有崩溃风险
    val info11 = _02KtBaseDay14().info1
    val info22 = _02KtBaseDay14().info2
    println(info11?.length)
    println(info22?.length)
    // 规则2 推荐
    val info111: String? = _02KtBaseDay14().info1
    val info222: String? = _02KtBaseDay14().info2
    println(info111?.length)
    println(info222?.length)
}